package main

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

var GLOBAL_DB *gorm.DB

func main() {

	//初始化数据库
	db, err := initDB()
	if err != nil {
		println("init db err:", err.Error(), "db:", db)
		return
	}
	//DeviceSample
	//CreateSomeModels()
	ManyToManySample()
}

func initDB() (db *gorm.DB, err error) {

	//返回值
	userName := "root"
	pwd := "lrb808"
	url := "124.71.63.137:3306"
	dbName := "gormDB"
	initUrl := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8&parseTime=True&loc=Local",
		userName, pwd, url, dbName)

	db, err = gorm.Open(mysql.New(mysql.Config{
		DSN:                       initUrl, // DSN data source name
		DefaultStringSize:         256,     // string 类型字段的默认长度
		DisableDatetimePrecision:  true,    // 禁用 datetime 精度，MySQL 5.6 之前的数据库不支持
		DontSupportRenameIndex:    true,    // 重命名索引时采用删除并新建的方式，MySQL 5.7 之前的数据库和 MariaDB 不支持重命名索引
		DontSupportRenameColumn:   true,    // 用 `change` 重命名列，MySQL 8 之前的数据库和 MariaDB 不支持重命名列
		SkipInitializeWithVersion: false,   // 根据当前 MySQL 版本自动配置
	}), &gorm.Config{})

	if err == nil {

		GLOBAL_DB = db
	}

	return
}
